Tegra186: mce: use udelay() to calculate timeouts
authorVarun Wadekar <[email protected]>
Fri, 1 Sep 2017 00:14:22 +0000 (17:14 -0700)
committerVarun Wadekar <[email protected]>
Wed, 23 Jan 2019 18:31:10 +0000 (10:31 -0800)
This patch modifies the timeout loop to use udelay() instead of
mdelay(). This helps with the boot time on some platforms which
issue a lot of MCE calls and every mdelay adds up increasing the
boot time by a lot.

Change-Id: Ic50081b73e1cbc2714361235b5c396e294b8f752
Signed-off-by: Varun Wadekar <[email protected]>
plat/nvidia/tegra/soc/t186/drivers/mce/ari.c

index 9c4e57cae65c400d318611964adfc5348b5cfd83..602a0562d6909025ca634d8766745f2228a78509 100644 (file)
@@ -35,8 +35,8 @@
 #define ARI_REQUEST_VALID_BIT          (1U << 8)
 #define ARI_EVT_MASK_STANDBYWFI_BIT    (1U << 7)
 
-/* default timeout (ms) to wait for ARI completion */
-#define ARI_MAX_RETRY_COUNT            2000
+/* default timeout (us) to wait for ARI completion */
+#define ARI_MAX_RETRY_COUNT            U(2000000)
 
 /*******************************************************************************
  * ARI helper functions
@@ -80,7 +80,7 @@ static inline void ari_clobber_response(uint32_t ari_base)
 static int32_t ari_request_wait(uint32_t ari_base, uint32_t evt_mask, uint32_t req,
                uint32_t lo, uint32_t hi)
 {
-       uint32_t retries = ARI_MAX_RETRY_COUNT;
+       uint32_t retries = (uint32_t)ARI_MAX_RETRY_COUNT;
        uint32_t status;
        int32_t ret = 0;
 
@@ -115,8 +115,8 @@ static int32_t ari_request_wait(uint32_t ari_base, uint32_t evt_mask, uint32_t r
                                        break;
                                }
 
-                               /* delay 1 ms */
-                               mdelay(1);
+                               /* delay 1 us */
+                               udelay(1);
 
                                /* decrement the retry count */
                                retries--;